package com.b511.swpu.cementbackend.entity;

import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import org.hibernate.annotations.GenericGenerator;
import org.hibernate.validator.constraints.Range;
import org.springframework.format.annotation.DateTimeFormat;

import javax.persistence.*;
import java.util.Date;

@Entity
@Getter
@Setter
@Accessors(chain = true)
// 隔离液委托 对应表 CM_DPACER_EXPERIMENT_COMMISSION
public class CM_DpacerExperimentCommission extends BABaseEntity{
    @Id
    @GenericGenerator(name="dpacerCommissionDesignGenerator", strategy="uuid")
    @GeneratedValue(generator="dpacerCommissionDesignGenerator")
    private String CM_DpacerExperimentCommission_ID;

    @Basic
    @Column(name = "CASINGSIZE")
    private Double casingSize;

    @Basic
    @Column(name = "OPERATOR", length = 50)
    private String operator;

    @Basic
    @Column(name = "PLATFORMNO", length = 50)
    private String platformNo;

    @Basic
    @Column(name = "DEPTH")
    private Double depth;

    @Basic
    @Column(name = "WORKTYPE", length = 50)
    private String workType;

    @Temporal(TemporalType.DATE)
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @Basic
    @Column(name = "FINISHDATE")
    private Date finishDate;

    @Basic
    @Column(name = "TESTITEM", length = 50)
    private String testItem;

    @Basic
    @Column(name = "DPACERTYPE", length = 50)
    private String dpacerType;

    @Basic
    @Column(name = "MIXWATERTYPE", length = 50)
    private String mixWaterType;

    @Basic
    @Column(name = "RECOMMENDSYSTEM", length = 100)
    private String recommendSystem;

    @Basic
    @Column(name = "TEMPERATUREGRADIENT")
    private Double temperatureGradient;

    @Basic
    @Column(name = "BHST")
    private Double BHST;

    @Basic
    @Column(name = "BHCT")
    private Double BHCT;

    @Basic
    @Column(name = "BHSP")
    private Double BHSP;

    @Basic
    @Column(name = "DPACERDENSITY")
    private Double dpacerDensity;

    @Basic
    @Column(name = "THICKENINGTIME", length = 50)
    private String thickeningTime;

    @Basic
    @Column(name = "LOSTWATER")
    private Double lostWater;

    @Basic
    @Column(name = "FREEWATER")
    private Double freeWater;

    @Basic
    @Column(name = "COMPRESSIVESTRENGTH")
    private Double compressiveStrength;

    @Basic
    @Column(name = "RHEOLOGY", length = 50)
    private String rheology;

    @Basic
    @Column(name = "VISCOSITY")
    private Double viscosity;

    @Basic
    @Column(name = "H")
    private Double h;

    @Basic
    @Column(name = "HY")
    private Double hy;

    @Basic
    @Column(name = "BEGINSET")
    private Double beginSet;

    @Basic
    @Column(name = "ENDSET")
    private Double endSet;

    @Basic
    @Column(name = "SURFACEMOBILITY")
    private String surfaceMobility;

    @Basic
    @Column(name = "STABILITY", length = 50)
    private String stability;

    @Basic
    @Column(name = "NOTE", length = 50)
    private String note;

    @Basic
    @Column(name = "COMMISSIIONDEPARTMENT", length = 50)
    private String commissionDepartment;

    @Basic
    @Column(name = "COMMISSIIONPERSON", length = 50)
    private String commissionPerson;

    @Temporal(TemporalType.DATE)
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @Basic
    @Column(name = "COMMISSIIONDATE")
    private Date commissionDate;

    @Basic
    @Column(name = "COMMISSIIONEDDEPARTMENT", length = 50)
    private String commissionedDepartment;

    @Basic
    @Column(name = "COMMISSIIONEDPERSON", length = 50)
    private String commissionedPerson;

    @Temporal(TemporalType.DATE)
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @Basic
    @Column(name = "COMMISSIIONEDDATE")
    private Date commissionedDate;

    @Basic
    @Column(name = "BA_WELL_ID")
    @JsonIgnore
    private Long ba_well_id;

    @ManyToOne
    @JoinColumn(name="cm_basic_id")
    private CM_Basic basic;

}
